Direct memory access (DMA) uses a DMA controller to transfer information between components in an electronic device. In a device without DMA capability, a processor may transfer information between components. By implementing a DMA system, the task of transferring information between components of the electronic device shifts from the processor to the DMA controller, thus allowing the processor to perform other tasks, such as executing instructions or performing calculations.
The DMA controller may transfer information between peripheral device components that are external or internal to the electronic device. For example, peripheral devices may include memory devices such as hard disk drives, compact disk (CD) drives, digital video disk (DVD) drives, memory cards, and other devices capable of storing information. Peripheral devices may further include universal asynchronous receiver/transmitters (UARTs), audio interfaces, universal serial bus (USB) interfaces, and other devices capable of processing, transferring, or storing information.
A peripheral device normally includes a buffer, which is a memory storage device used to temporarily store information. The DMA controller fills the peripheral device's buffer with information from the electronic device's main memory or another peripheral device. The peripheral device then processes, stores, or transmits the information in the buffer, eventually sending a request to the DMA controller when more information is needed to fill the buffer. The DMA controller may also transfer information from the peripheral device's buffer to the electronic device's main memory or another peripheral device.
If the peripheral device takes an amount of time to process, store, or transmit the information, the DMA controller has to wait the amount of time before filling the peripheral device's buffer with more information or retrieving information from the buffer. While the DMA controller waits to fill or empty the peripheral device buffer, an active power and clock signal are transmitted to the idle DMA controller. A communication bus may transfer information between the DMA controller and the peripheral device. An active power and clock signal may also be transmitted to the communication bus while the DMA controller is idle. Thus, the DMA controller and the communication bus may consume power even when the DMA controller and the communication bus are not interacting with the peripheral device.
DMA systems are present in electronic devices such as portable computers, portable music players, cellular telephones, personal digital assistants (PDAs), portable gaming devices, and other devices dependent on battery power. Reducing the consumption of power allows battery powered portable electronic devices to operate for longer periods without recharging the batteries. Thus, it would be beneficial to reduce power consumption by making the DMA controller inactive when the controller is not interacting with a peripheral device. It would also be beneficial to reduce power consumption by other components of the DMA system that are idle when no DMA transfer occurs.